RT_SECURE_NO_WARNINGS 1

#include<iostream>
#include<vector>

using namespace std;

int common_divisor(int a, int b)
{
    if (a < b)
        swap(a, b);

    int i = b;
    while (1)
    {
        if ((a % i == 0) && (b % i == 0))
            break;
        else
            i--;
    }
    return i;
}

//int main()
//{
//    int defat = 0;
//    int n = 0;
//    while (cin >> n >> defat)
//    {
//        vector<int> vb(n);
//        for (int i = 0; i < n; i++)
//        {
//            cin >> vb[i];
//        }
//
//        for (auto e : vb)
//        {
//            if (defat >= e)
//            {
//                defat += e;
//            }
//            else
//            {
//                int add = common_divisor(e, defat);
//                defat += add;
//            }
//        }
//
//        cout << defat << endl;
//    }
//
//    return 0;
//}


//int main()
//{
//    string str("123456");
//
//    auto cur = str.begin();
//    cout << *cur;
//    return 0;
//}


//
//#include<iostream>
//#include<string>
//
//using namespace std;
//
//int main()
//{
//    string str;
//    char arr[26] = { 0 };
//    string find;
//    cin >> str;
//    if (str == "")
//    {
//        cout << -1;
//        return 0;
//    }
//
//    //映射
//    for (auto e : str)
//    {
//        arr[e - 97]++;
//    }
//
//    //找到 出现 1次 的
//    for (int i = 0; i < 26; i++)
//    {
//        if (arr[i] == 1)
//        {
//            find += 'a' + i;
//        }
//    }
//    //没有就说明没有出现一次的
//    if (find == "")
//    {
//        cout << -1;
//        return 0;
//    }
//
//    for (auto e : find)
//    {
//        cout << str[str.find(e)];
//        break;
//    }
//
//    return 0;
//}

#include<iostream>
#include<string>

using namespace std;

//int main()
//{
//    string str;
//    char arr[26] = { 0 };
//    string find;
//    cin >> str;
//    if (str == "")
//    {
//        cout << -1;
//        return 0;
//    }
//
//    //映射
//    for (auto e : str)
//    {
//        arr[e - 97]++;
//    }
//
//    //找到 出现 1次 的
//    for (int i = 0; i < 26; i++)
//    {
//        if (arr[i] == 1)
//        {
//            find += 'a' + i;
//        }
//    }
//    //没有就说明没有出现一次的
//    if (find == "")
//    {
//        cout << -1;
//        return 0;
//    }
//
//    //在出现1次的里面 找原字符串第一个出现的
//    //str aabbcddeff
//    //find   c e
//    for (auto e : str)
//    {
//        int pos = find.find(e);
//        cout << pos << " " << endl;
//        if (pos != string::npos)
//        {
//            cout << str[pos];
//            break;
//        }
//    }
//
//    return 0;
//}


#include<map>

//int main()
//{
//    vector<int> v{ 1,5,6,8,8,5,2,3 };
//    map<int, int> ma;
//    for (auto e : v)
//    {
//        auto it = ma.insert({ e,0 });
//        if (it.second == false)
//        {
//            it.first->second++;
//            cout << "false" << endl;
//        }
//    }
//    for (auto e : ma)
//    {
//        cout << e.first<<" "<< e.second << " ";
//    }
//}

class Gift {
public:
    int getValue(vector<int> gifts, int n) {
        // write code here
        map<int, int> redpacket;
        //map 记录出现次数
        for (auto e : gifts)
        {
            auto it = redpacket.insert({ e,1 });
            if (it.second == false)
            {
                it.first->second++;
            }
        }

        auto ret = redpacket.begin();
        for (auto cur = redpacket.begin(); cur != redpacket.end(); cur++)
        {
            if (ret->second < cur->second)
            {
                ret = cur;
            }
        }
        if (ret->second > (n / 2))
        {
            cout << ret->first;
            return ret->first;
        }
        else
        {
            cout << 0;
            return 0;
        }
    }
};

//int main()
//{
//    char* arr=nullptr;
//    cin >> arr;
//    cout << arr;
//    return 0;
//}
